package it.unina.uninachi;

import java.io.*;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class AttendiDomandaThread extends Thread {
	
	protected Handler handler;
	protected DataInputStream in;
	protected DataOutputStream out;
	
	public AttendiDomandaThread(Handler H){ //per la comunicazione con l'activity
		handler = H;
		try {
			in = new DataInputStream(WaitConnection.socket.getInputStream());
			out = new DataOutputStream(WaitConnection.socket.getOutputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void run(){
		try {
			//protocollo
			out.writeUTF("ACK"); //significa "fammi una domanda"
			String ricevuto = new String(in.readUTF()); //ricevo la domanda o la soluzione
			String [] messaggio = ricevuto.split("_"); //divido la stringa
			
			if (messaggio[0].equals("TERMINA")){ //se invece ricevo richiesta di terminazione
				WaitConnection.socket.close(); //chiudo la socket
			}
			send(messaggio[0],messaggio[1]); //mando la stringa alla activity
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	//funzione per l'invio della stringa all'activity
	private void send(String tipo, String messaggio){
	    Message msg = handler.obtainMessage();
	    Bundle b = new Bundle();
	    b.putString(tipo, ""+messaggio);
	    msg.setData(b);
	    handler.sendMessage(msg);	
	}
}
